Data compression is a well-known and useful technique to increase the effective use of data storage capacity, such as a hard storage device. However, some data compression schemes or algorithms work better with certain types of data than others. Data compression can either be termed as “lossless” data compression, where the exact original data can be obtained from the compressed version, or as “lossy” data compression, where the exact input data cannot be restored from the compressed version.
Generally data compression occurs at the host, which then sends the compressed data as a compressed data file to the drive (e.g., a hard storage device (HDD), or a solid state drive (SSD)). On-drive data compression, however, is where the drive receives a raw, uncompressed data file from the host, compresses the data, and then stores the compressed data file thereon.
Previous methods of on-drive data compression compress the data “dumbly,” or perform unintelligent/oversimplified data compression, where every raw data file that is received by the drive is compressed using an identical data compression method or algorithm. Thereafter, the drive stores the compressed data as a compressed data file thereon. That is, unintelligent on-drive data compression indicates that the drive takes every piece of data received from the host, and compresses every piece of data with a same data compression algorithm, and then stores the compressed data file on the drive.
When using unintelligent data compression, the drive ignores distinguishing characteristics of the data, such as characteristics that may indicate whether the data was already compressed by the host, whether the data was previously encrypted, whether a user of the drive wants the data to be compressed, and to what degree, or according to what parameters, and a variety of other factors. Further, when using unintelligent data compression, the drive ignores the fact that certain types of data are more amenable to be compressed according to one or more particular data compression schemes than other types of data.
Previously implemented versions of “dumb” or unintelligent data compression (e.g., general data compression) have operated on the assumption that a user seeking to save data on the drive does not want a lossy data compression scheme that results in the loss of important data. The previously implemented versions of unintelligent data compression, therefore, have always involved lossless data compression, as opposed to lossy data compression. That is, because lossy data compression may be harmful to particular types of data (e.g., databases, work data files, etc.), and may potentially result in corrupted data, only lossless data compression schemes were previously implemented in order to maintain the integrity of the data.
Furthermore, previously implemented lossy data compression schemes were always performed by the host, and the data was not compressed by the drive. Instead, the drive would simply receive and store the compressed data file that is sent from the host. The host would typically correspond to the central processing unit (CPU)/computer processor of the user seeking to compress and store the data. Unfortunately, the computing operations associated with such lossy data compression generally take a large number of CPU cycles, and also use a corresponding large amount of energy.
The above information is disclosed only for enhancement of understanding of the background of the disclosure, and may therefore contain information that does not constitute prior art.